#ifndef __M_MESSAGE_H__
#define __M_MESSAGE_H__

/*⽇志消息类主要是封装⼀条完整的⽇志消息所需的内容
    定义一个日志消息类，内容包含：
    1.日志的输出时间
    2.日志等级
    3.源文件名称
    4.源代码行号
    5.线程id
    6.日志主体消息
    7.日志器名称
*/
#include "util.hpp"
#include "level.hpp"
#include <iostream>
#include <string>
#include <thread>
namespace PRJLOG
{
    struct message
    {
        time_t _ctime;          // 日志输出时间
        LogLevel::value _level; // 日志输出等级
        std::string _file;      // 源码文件名
        int _line;              // 源代码行号
        std::thread::id _tid;   // 线程id
        std::string _msg;       // 有效消息数据
        std::string _logger;    // 日志器名称

        message(LogLevel::value level, std::string file, int line, std::string msg, std::string logger)
            : _ctime(util::Date::nowtime()),
              _level(level),
              _file(file),
              _line(line),
              _tid(std::this_thread::get_id()),
              _msg(msg),
              _logger(logger)
        {
        }
    };
}
#endif